<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MRSL Motion Primitive Library: include/mpl_traj_solver/traj_solver.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MRSL Motion Primitive Library
   &#160;<span id="projectnumber">1.2</span>
   </div>
   <div id="projectbrief">A motion primitive library for generating trajectory for mobile robots</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_8e76f29c55fc3c0dcffde3c31a52a0ea.html">mpl_traj_solver</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">traj_solver.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="traj__solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#ifndef MPL_TRAJ_SOLVER_H</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#define MPL_TRAJ_SOLVER_H</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="trajectory_8h.html">mpl_basis/trajectory.h</a>&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="poly__solver_8h.html">mpl_traj_solver/poly_solver.h</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">int</span> Dim&gt;</div><div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classTrajSolver.html">   12</a></span>&#160;<span class="keyword">class </span><a class="code" href="classTrajSolver.html">TrajSolver</a> {</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a36dcaec7ddfab965407d47cb247c5f29">   19</a></span>&#160;  <a class="code" href="classTrajSolver.html#a36dcaec7ddfab965407d47cb247c5f29">TrajSolver</a>(<a class="code" href="control_8h.html#af3600af994b25be7c568791eefdadf2e">Control::Control</a> control,</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;             <a class="code" href="control_8h.html#af3600af994b25be7c568791eefdadf2e">Control::Control</a> yaw_control = Control::VEL, <span class="keywordtype">bool</span> debug = <span class="keyword">false</span>)</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;      : <a class="code" href="classTrajSolver.html#a1408cded894ef27adc07fd1274ae90ff">control_</a>(control), <a class="code" href="classTrajSolver.html#a5c036ece00f28f43dba7d68812d84ae0">yaw_control_</a>(yaw_control) {</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keywordflow">if</span> (control == Control::VEL || control == Control::VELxYAW)</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;      <a class="code" href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">poly_solver_</a>.reset(<span class="keyword">new</span> <a class="code" href="classPolySolver.html">PolySolver&lt;Dim&gt;</a>(0, 1, debug));</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (control == Control::ACC || control == Control::ACCxYAW)</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;      <a class="code" href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">poly_solver_</a>.reset(<span class="keyword">new</span> <a class="code" href="classPolySolver.html">PolySolver&lt;Dim&gt;</a>(1, 2, debug));</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (control == Control::JRK || control == Control::JRKxYAW)</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;      <a class="code" href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">poly_solver_</a>.reset(<span class="keyword">new</span> <a class="code" href="classPolySolver.html">PolySolver&lt;Dim&gt;</a>(2, 3, debug));</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="comment">// Due to dimension issue, only workd up to thrid order</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="comment">// if(control == Control::SNP || control == Control::SNPxYAW)</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="comment">// poly_solver_.reset(new PolySolver&lt;Dim&gt;(3, 4));</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordflow">if</span> (yaw_control == Control::VEL)</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;      <a class="code" href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">yaw_solver_</a>.reset(<span class="keyword">new</span> <a class="code" href="classPolySolver.html">PolySolver&lt;1&gt;</a>(0, 1));</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (yaw_control == Control::ACC)</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;      <a class="code" href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">yaw_solver_</a>.reset(<span class="keyword">new</span> <a class="code" href="classPolySolver.html">PolySolver&lt;1&gt;</a>(1, 2));</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (yaw_control == Control::JRK)</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;      <a class="code" href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">yaw_solver_</a>.reset(<span class="keyword">new</span> <a class="code" href="classPolySolver.html">PolySolver&lt;1&gt;</a>(2, 3));</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  }</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a4908f5e5f792820688cf9675b88fa660">   40</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classTrajSolver.html#a4908f5e5f792820688cf9675b88fa660">setWaypoints</a>(<span class="keyword">const</span> <a class="code" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt;<a class="code" href="structWaypoint.html">Waypoint&lt;Dim&gt;</a>&gt;&amp; ws) {</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <a class="code" href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">path_</a>.resize(ws.size());</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; ws.size(); i++) <a class="code" href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">path_</a>[i] = ws[i].pos;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a> = ws;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  }</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classTrajSolver.html#ac19cb6eed090945ebd4d847631434819">   47</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classTrajSolver.html#ac19cb6eed090945ebd4d847631434819">setV</a>(<a class="code" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> v) { <a class="code" href="classTrajSolver.html#a422501c43459886aa58f022d50022e16">v_</a> = v; }</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a6a18b04911e00ad28da5fe5070a73430">   51</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classTrajSolver.html#a6a18b04911e00ad28da5fe5070a73430">setDts</a>(<span class="keyword">const</span> std::vector&lt;decimal_t&gt;&amp; dts) { <a class="code" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">dts_</a> = dts; }</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classTrajSolver.html#ad69444b555306f3825f3fff3aec463f5">   55</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classTrajSolver.html#ad69444b555306f3825f3fff3aec463f5">setPath</a>(<span class="keyword">const</span> <a class="code" href="data__type_8h.html#a0a3b37beb40c06edc02cb4b7339f2b96">vec_Vecf&lt;Dim&gt;</a>&amp; path) {</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <a class="code" href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">path_</a> = path;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>.resize(<a class="code" href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">path_</a>.size());</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>.size(); i++) {</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;      <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>[i].pos = path[i];</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;      <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>[i].vel = <a class="code" href="data__type_8h.html#a3a0c45655a5e009e56634ccde0c5c575">Vecf&lt;Dim&gt;::Zero</a>();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;      <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>[i].acc = <a class="code" href="data__type_8h.html#a3a0c45655a5e009e56634ccde0c5c575">Vecf&lt;Dim&gt;::Zero</a>();</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;      <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>[i].jrk = <a class="code" href="data__type_8h.html#a3a0c45655a5e009e56634ccde0c5c575">Vecf&lt;Dim&gt;::Zero</a>();</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;      <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>[i].yaw = 0;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;      <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>[i].control = Control::VEL;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    }</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>.front().control = <a class="code" href="classTrajSolver.html#a1408cded894ef27adc07fd1274ae90ff">control_</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>.back().control = <a class="code" href="classTrajSolver.html#a1408cded894ef27adc07fd1274ae90ff">control_</a>;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a9b874da171422147e61b2b8f7ecb20dd">   73</a></span>&#160;  <a class="code" href="classTrajectory.html">Trajectory&lt;Dim&gt;</a> <a class="code" href="classTrajSolver.html#a9b874da171422147e61b2b8f7ecb20dd">solve</a>(<span class="keywordtype">bool</span> verbose = <span class="keyword">false</span>) {</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>.size() != <a class="code" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">dts_</a>.size() + 1) <a class="code" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">dts_</a> = <a class="code" href="classTrajSolver.html#a0cd1fa73c97167f4c015ceb673beca11">allocate_time</a>(<a class="code" href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">path_</a>, <a class="code" href="classTrajSolver.html#a422501c43459886aa58f022d50022e16">v_</a>);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordflow">if</span> (verbose) {</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;      <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : <a class="code" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">dts_</a>) std::cout &lt;&lt; <span class="stringliteral">&quot;dt: &quot;</span> &lt;&lt; it &lt;&lt; std::endl;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;      <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>) it.print();</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    }</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">poly_solver_</a> &amp;&amp; <a class="code" href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">yaw_solver_</a>) {</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;      <span class="comment">// solve for pos</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;      <a class="code" href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">poly_solver_</a>-&gt;solve(<a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>, <a class="code" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">dts_</a>);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;      <span class="keyword">auto</span> traj =</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;          <a class="code" href="classTrajectory.html">Trajectory&lt;Dim&gt;</a>(<a class="code" href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">poly_solver_</a>-&gt;getTrajectory()-&gt;toPrimitives());</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;      <span class="comment">// solve for yaw</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;      <a class="code" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E&lt;Waypoint&lt;1&gt;</a>&gt; yaws;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;      <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>) {</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        <a class="code" href="structWaypoint.html">Waypoint&lt;1&gt;</a> yaw(Control::VEL);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        yaw.<a class="code" href="structWaypoint.html#af63de420a521f105eea4ce098a51ad7e">pos</a>(0) = it.yaw;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        yaw.<a class="code" href="structWaypoint.html#a91393e0d8d73afb9df512710e56f02a5">vel</a>(0) = 0;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        yaw.<a class="code" href="structWaypoint.html#a648217ed387d4e226bec8ecb05bfefe8">acc</a>(0) = 0;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        yaw.<a class="code" href="structWaypoint.html#a7966bc3955c4c0f880eea35a76e4c8ed">jrk</a>(0) = 0;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        yaws.push_back(yaw);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      }</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;      yaws.front().control = <a class="code" href="classTrajSolver.html#a5c036ece00f28f43dba7d68812d84ae0">yaw_control_</a>;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;      yaws.back().control = <a class="code" href="classTrajSolver.html#a5c036ece00f28f43dba7d68812d84ae0">yaw_control_</a>;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;      <a class="code" href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">yaw_solver_</a>-&gt;solve(yaws, <a class="code" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">dts_</a>);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;      <span class="keyword">auto</span> yaw_prs = <a class="code" href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">yaw_solver_</a>-&gt;getTrajectory()-&gt;toPrimitives();</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;      <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; traj.segs.size(); i++)</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        traj.segs[i].pr_yaw_ = yaw_prs[i].prs_[0];</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;      <span class="keywordflow">return</span> traj;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;      <span class="keywordflow">if</span> (verbose)</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        printf(<a class="code" href="data__type_8h.html#a34995b955465f6bbb37c359173d50477">ANSI_COLOR_RED</a></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;               <span class="stringliteral">&quot;TrajSolver is not initialized properlly!\n&quot;</span> <a class="code" href="data__type_8h.html#a92a364c2b863dde1a024a77eac2a5b3b">ANSI_COLOR_RESET</a>);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classTrajectory.html">Trajectory&lt;Dim&gt;</a>();</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    }</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  }</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classTrajSolver.html#af56dfb26695cea599c0a67066797cef9">  112</a></span>&#160;  <a class="code" href="data__type_8h.html#a0a3b37beb40c06edc02cb4b7339f2b96">vec_Vecf&lt;Dim&gt;</a> <a class="code" href="classTrajSolver.html#af56dfb26695cea599c0a67066797cef9">getPath</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">path_</a>; }</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a8c5a52026bdfff1b9498bef6336fef16">  115</a></span>&#160;  <a class="code" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E&lt;Waypoint&lt;Dim&gt;</a>&gt; <a class="code" href="classTrajSolver.html#a8c5a52026bdfff1b9498bef6336fef16">getWaypoints</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>; }</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classTrajSolver.html#af7cf3431f22a130fc5bcd2cf6b99d067">  118</a></span>&#160;  std::vector&lt;decimal_t&gt; <a class="code" href="classTrajSolver.html#af7cf3431f22a130fc5bcd2cf6b99d067">getDts</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">dts_</a>; }</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a0cd1fa73c97167f4c015ceb673beca11">  122</a></span>&#160;  std::vector&lt;decimal_t&gt; <a class="code" href="classTrajSolver.html#a0cd1fa73c97167f4c015ceb673beca11">allocate_time</a>(<span class="keyword">const</span> <a class="code" href="data__type_8h.html#a0a3b37beb40c06edc02cb4b7339f2b96">vec_Vecf&lt;Dim&gt;</a>&amp; pts, <a class="code" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> v) {</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordflow">if</span> (pts.size() &lt; 2 || v &lt;= 0) return std::vector&lt;decimal_t&gt;();</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    std::vector&lt;decimal_t&gt; dts(pts.size() - 1);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 1; i &lt; pts.size(); i++) {</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;      <a class="code" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> d = (pts[i] - pts[i - 1]).<span class="keyword">template</span> lpNorm&lt;Eigen::Infinity&gt;();</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;      dts[i - 1] = d / v;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    }</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordflow">return</span> dts;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;  }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">  133</a></span>&#160;  <a class="code" href="data__type_8h.html#a0a3b37beb40c06edc02cb4b7339f2b96">vec_Vecf&lt;Dim&gt;</a> <a class="code" href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">path_</a>;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">  136</a></span>&#160;  <a class="code" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E&lt;Waypoint&lt;Dim&gt;</a>&gt; <a class="code" href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">waypoints_</a>;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">  139</a></span>&#160;  std::vector&lt;decimal_t&gt; <a class="code" href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">dts_</a>;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a422501c43459886aa58f022d50022e16">  142</a></span>&#160;  <a class="code" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> <a class="code" href="classTrajSolver.html#a422501c43459886aa58f022d50022e16">v_</a>{1};</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a1408cded894ef27adc07fd1274ae90ff">  145</a></span>&#160;  <a class="code" href="control_8h.html#af3600af994b25be7c568791eefdadf2e">Control::Control</a> <a class="code" href="classTrajSolver.html#a1408cded894ef27adc07fd1274ae90ff">control_</a>;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a5c036ece00f28f43dba7d68812d84ae0">  148</a></span>&#160;  <a class="code" href="control_8h.html#af3600af994b25be7c568791eefdadf2e">Control::Control</a> <a class="code" href="classTrajSolver.html#a5c036ece00f28f43dba7d68812d84ae0">yaw_control_</a>;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">  151</a></span>&#160;  std::unique_ptr&lt;PolySolver&lt;Dim&gt;&gt; <a class="code" href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">poly_solver_</a>;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">  154</a></span>&#160;  std::unique_ptr&lt;PolySolver&lt;1&gt;&gt; <a class="code" href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">yaw_solver_</a>;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;};</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="traj__solver_8h.html#a6a8478ebceed46458f216aee64b27ca9">  158</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classTrajSolver.html">TrajSolver&lt;2&gt;</a> <a class="code" href="traj__solver_8h.html#a6a8478ebceed46458f216aee64b27ca9">TrajSolver2D</a>;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="traj__solver_8h.html#a6190a75a6dd79f4b1c555b10feba1dba">  161</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classTrajSolver.html">TrajSolver&lt;3&gt;</a> <a class="code" href="traj__solver_8h.html#a6190a75a6dd79f4b1c555b10feba1dba">TrajSolver3D</a>;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="classTrajSolver_html_a4908f5e5f792820688cf9675b88fa660"><div class="ttname"><a href="classTrajSolver.html#a4908f5e5f792820688cf9675b88fa660">TrajSolver::setWaypoints</a></div><div class="ttdeci">void setWaypoints(const vec_E&lt; Waypoint&lt; Dim &gt;&gt; &amp;ws)</div><div class="ttdoc">Set Waypoint array directly, overwrite global vars. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:40</div></div>
<div class="ttc" id="classTrajSolver_html_ab066a572809ee69de6205d1df69b1d34"><div class="ttname"><a href="classTrajSolver.html#ab066a572809ee69de6205d1df69b1d34">TrajSolver::yaw_solver_</a></div><div class="ttdeci">std::unique_ptr&lt; PolySolver&lt; 1 &gt; &gt; yaw_solver_</div><div class="ttdoc">Poly solver for yaw only. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:154</div></div>
<div class="ttc" id="classTrajSolver_html_a8c5a52026bdfff1b9498bef6336fef16"><div class="ttname"><a href="classTrajSolver.html#a8c5a52026bdfff1b9498bef6336fef16">TrajSolver::getWaypoints</a></div><div class="ttdeci">vec_E&lt; Waypoint&lt; Dim &gt; &gt; getWaypoints() const</div><div class="ttdoc">Get the Waypoint array used to solve trajectory. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:115</div></div>
<div class="ttc" id="classTrajSolver_html_a55ef39635075de3f942c50197535dc0d"><div class="ttname"><a href="classTrajSolver.html#a55ef39635075de3f942c50197535dc0d">TrajSolver::waypoints_</a></div><div class="ttdeci">vec_E&lt; Waypoint&lt; Dim &gt; &gt; waypoints_</div><div class="ttdoc">Intermediate waypoints. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:136</div></div>
<div class="ttc" id="trajectory_8h_html"><div class="ttname"><a href="trajectory_8h.html">trajectory.h</a></div><div class="ttdoc">Trajectory class. </div></div>
<div class="ttc" id="classTrajSolver_html_a869cf17b3d339a1b66d5fd7742fedbbf"><div class="ttname"><a href="classTrajSolver.html#a869cf17b3d339a1b66d5fd7742fedbbf">TrajSolver::poly_solver_</a></div><div class="ttdeci">std::unique_ptr&lt; PolySolver&lt; Dim &gt; &gt; poly_solver_</div><div class="ttdoc">Poly solver. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:151</div></div>
<div class="ttc" id="structWaypoint_html_a7966bc3955c4c0f880eea35a76e4c8ed"><div class="ttname"><a href="structWaypoint.html#a7966bc3955c4c0f880eea35a76e4c8ed">Waypoint::jrk</a></div><div class="ttdeci">Vecf&lt; Dim &gt; jrk</div><div class="ttdoc">jerk in  </div><div class="ttdef"><b>Definition:</b> waypoint.h:35</div></div>
<div class="ttc" id="data__type_8h_html_a34995b955465f6bbb37c359173d50477"><div class="ttname"><a href="data__type_8h.html#a34995b955465f6bbb37c359173d50477">ANSI_COLOR_RED</a></div><div class="ttdeci">#define ANSI_COLOR_RED</div><div class="ttdoc">Set red font in printf funtion. </div><div class="ttdef"><b>Definition:</b> data_type.h:16</div></div>
<div class="ttc" id="structWaypoint_html"><div class="ttname"><a href="structWaypoint.html">Waypoint</a></div><div class="ttdoc">Waypoint base class. </div><div class="ttdef"><b>Definition:</b> waypoint.h:23</div></div>
<div class="ttc" id="classTrajectory_html"><div class="ttname"><a href="classTrajectory.html">Trajectory</a></div><div class="ttdoc">Trajectory class. </div><div class="ttdef"><b>Definition:</b> trajectory.h:43</div></div>
<div class="ttc" id="classTrajSolver_html_ad69444b555306f3825f3fff3aec463f5"><div class="ttname"><a href="classTrajSolver.html#ad69444b555306f3825f3fff3aec463f5">TrajSolver::setPath</a></div><div class="ttdeci">void setPath(const vec_Vecf&lt; Dim &gt; &amp;path)</div><div class="ttdef"><b>Definition:</b> traj_solver.h:55</div></div>
<div class="ttc" id="classTrajSolver_html_a422501c43459886aa58f022d50022e16"><div class="ttname"><a href="classTrajSolver.html#a422501c43459886aa58f022d50022e16">TrajSolver::v_</a></div><div class="ttdeci">decimal_t v_</div><div class="ttdoc">Velocity used for internal time allocation. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:142</div></div>
<div class="ttc" id="classTrajSolver_html_af56dfb26695cea599c0a67066797cef9"><div class="ttname"><a href="classTrajSolver.html#af56dfb26695cea599c0a67066797cef9">TrajSolver::getPath</a></div><div class="ttdeci">vec_Vecf&lt; Dim &gt; getPath() const</div><div class="ttdoc">Get the path used for time allocation. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:112</div></div>
<div class="ttc" id="control_8h_html_af3600af994b25be7c568791eefdadf2e"><div class="ttname"><a href="control_8h.html#af3600af994b25be7c568791eefdadf2e">Control::Control</a></div><div class="ttdeci">Control</div><div class="ttdoc">Enum for control input. </div><div class="ttdef"><b>Definition:</b> control.h:10</div></div>
<div class="ttc" id="classTrajSolver_html_a5f6a061cf9a0b7c2abdc9c52f6e6c287"><div class="ttname"><a href="classTrajSolver.html#a5f6a061cf9a0b7c2abdc9c52f6e6c287">TrajSolver::dts_</a></div><div class="ttdeci">std::vector&lt; decimal_t &gt; dts_</div><div class="ttdoc">Time allocation. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:139</div></div>
<div class="ttc" id="classTrajSolver_html_a6a18b04911e00ad28da5fe5070a73430"><div class="ttname"><a href="classTrajSolver.html#a6a18b04911e00ad28da5fe5070a73430">TrajSolver::setDts</a></div><div class="ttdeci">void setDts(const std::vector&lt; decimal_t &gt; &amp;dts)</div><div class="ttdef"><b>Definition:</b> traj_solver.h:51</div></div>
<div class="ttc" id="structWaypoint_html_a648217ed387d4e226bec8ecb05bfefe8"><div class="ttname"><a href="structWaypoint.html#a648217ed387d4e226bec8ecb05bfefe8">Waypoint::acc</a></div><div class="ttdeci">Vecf&lt; Dim &gt; acc</div><div class="ttdoc">acceleration in  </div><div class="ttdef"><b>Definition:</b> waypoint.h:34</div></div>
<div class="ttc" id="data__type_8h_html_a6b9210d48a0a541940af71827aad1b41"><div class="ttname"><a href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a></div><div class="ttdeci">std::vector&lt; T, Eigen::aligned_allocator&lt; T &gt; &gt; vec_E</div><div class="ttdoc">Pre-allocated std::vector for Eigen using vec_E. </div><div class="ttdef"><b>Definition:</b> data_type.h:53</div></div>
<div class="ttc" id="classTrajSolver_html_a5c036ece00f28f43dba7d68812d84ae0"><div class="ttname"><a href="classTrajSolver.html#a5c036ece00f28f43dba7d68812d84ae0">TrajSolver::yaw_control_</a></div><div class="ttdeci">Control::Control yaw_control_</div><div class="ttdoc">Control constraints for start and goal yaw. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:148</div></div>
<div class="ttc" id="data__type_8h_html_a0a3b37beb40c06edc02cb4b7339f2b96"><div class="ttname"><a href="data__type_8h.html#a0a3b37beb40c06edc02cb4b7339f2b96">vec_Vecf</a></div><div class="ttdeci">vec_E&lt; Vecf&lt; N &gt; &gt; vec_Vecf</div><div class="ttdoc">Vector of Eigen 1D float vector. </div><div class="ttdef"><b>Definition:</b> data_type.h:70</div></div>
<div class="ttc" id="structWaypoint_html_a91393e0d8d73afb9df512710e56f02a5"><div class="ttname"><a href="structWaypoint.html#a91393e0d8d73afb9df512710e56f02a5">Waypoint::vel</a></div><div class="ttdeci">Vecf&lt; Dim &gt; vel</div><div class="ttdoc">velocity in  </div><div class="ttdef"><b>Definition:</b> waypoint.h:33</div></div>
<div class="ttc" id="traj__solver_8h_html_a6a8478ebceed46458f216aee64b27ca9"><div class="ttname"><a href="traj__solver_8h.html#a6a8478ebceed46458f216aee64b27ca9">TrajSolver2D</a></div><div class="ttdeci">TrajSolver&lt; 2 &gt; TrajSolver2D</div><div class="ttdoc">TrajSolver for 2D. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:158</div></div>
<div class="ttc" id="classTrajSolver_html_a1408cded894ef27adc07fd1274ae90ff"><div class="ttname"><a href="classTrajSolver.html#a1408cded894ef27adc07fd1274ae90ff">TrajSolver::control_</a></div><div class="ttdeci">Control::Control control_</div><div class="ttdoc">Control constraints for start and goal. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:145</div></div>
<div class="ttc" id="classTrajSolver_html_ab4ac82263fb85e417400be61d8fa871e"><div class="ttname"><a href="classTrajSolver.html#ab4ac82263fb85e417400be61d8fa871e">TrajSolver::path_</a></div><div class="ttdeci">vec_Vecf&lt; Dim &gt; path_</div><div class="ttdoc">Intermediate pos. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:133</div></div>
<div class="ttc" id="poly__solver_8h_html"><div class="ttname"><a href="poly__solver_8h.html">poly_solver.h</a></div><div class="ttdoc">Trajectory generator from given waypoints. </div></div>
<div class="ttc" id="data__type_8h_html_a7c99d9360fc6cac2762b786e2fb52266"><div class="ttname"><a href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a></div><div class="ttdeci">double decimal_t</div><div class="ttdoc">Rename the float type used in lib. </div><div class="ttdef"><b>Definition:</b> data_type.h:49</div></div>
<div class="ttc" id="classTrajSolver_html_a9b874da171422147e61b2b8f7ecb20dd"><div class="ttname"><a href="classTrajSolver.html#a9b874da171422147e61b2b8f7ecb20dd">TrajSolver::solve</a></div><div class="ttdeci">Trajectory&lt; Dim &gt; solve(bool verbose=false)</div><div class="ttdoc">Solve for trajectory. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:73</div></div>
<div class="ttc" id="classTrajSolver_html_af7cf3431f22a130fc5bcd2cf6b99d067"><div class="ttname"><a href="classTrajSolver.html#af7cf3431f22a130fc5bcd2cf6b99d067">TrajSolver::getDts</a></div><div class="ttdeci">std::vector&lt; decimal_t &gt; getDts() const</div><div class="ttdoc">Get the time allocation. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:118</div></div>
<div class="ttc" id="data__type_8h_html_a92a364c2b863dde1a024a77eac2a5b3b"><div class="ttname"><a href="data__type_8h.html#a92a364c2b863dde1a024a77eac2a5b3b">ANSI_COLOR_RESET</a></div><div class="ttdeci">#define ANSI_COLOR_RESET</div><div class="ttdoc">Reset font color in printf funtion. </div><div class="ttdef"><b>Definition:</b> data_type.h:40</div></div>
<div class="ttc" id="data__type_8h_html_a3a0c45655a5e009e56634ccde0c5c575"><div class="ttname"><a href="data__type_8h.html#a3a0c45655a5e009e56634ccde0c5c575">Vecf</a></div><div class="ttdeci">Eigen::Matrix&lt; decimal_t, N, 1 &gt; Vecf</div><div class="ttdoc">Eigen 1D float vector of size N. </div><div class="ttdef"><b>Definition:</b> data_type.h:56</div></div>
<div class="ttc" id="traj__solver_8h_html_a6190a75a6dd79f4b1c555b10feba1dba"><div class="ttname"><a href="traj__solver_8h.html#a6190a75a6dd79f4b1c555b10feba1dba">TrajSolver3D</a></div><div class="ttdeci">TrajSolver&lt; 3 &gt; TrajSolver3D</div><div class="ttdoc">TrajSolver for 3D. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:161</div></div>
<div class="ttc" id="classTrajSolver_html_a36dcaec7ddfab965407d47cb247c5f29"><div class="ttname"><a href="classTrajSolver.html#a36dcaec7ddfab965407d47cb247c5f29">TrajSolver::TrajSolver</a></div><div class="ttdeci">TrajSolver(Control::Control control, Control::Control yaw_control=Control::VEL, bool debug=false)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:19</div></div>
<div class="ttc" id="classTrajSolver_html"><div class="ttname"><a href="classTrajSolver.html">TrajSolver</a></div><div class="ttdoc">Trajectory generator. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:12</div></div>
<div class="ttc" id="structWaypoint_html_af63de420a521f105eea4ce098a51ad7e"><div class="ttname"><a href="structWaypoint.html#af63de420a521f105eea4ce098a51ad7e">Waypoint::pos</a></div><div class="ttdeci">Vecf&lt; Dim &gt; pos</div><div class="ttdoc">position in  </div><div class="ttdef"><b>Definition:</b> waypoint.h:32</div></div>
<div class="ttc" id="classTrajSolver_html_a0cd1fa73c97167f4c015ceb673beca11"><div class="ttname"><a href="classTrajSolver.html#a0cd1fa73c97167f4c015ceb673beca11">TrajSolver::allocate_time</a></div><div class="ttdeci">std::vector&lt; decimal_t &gt; allocate_time(const vec_Vecf&lt; Dim &gt; &amp;pts, decimal_t v)</div><div class="ttdoc">Internal time allocation from path and vel using L-inf. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:122</div></div>
<div class="ttc" id="classPolySolver_html"><div class="ttname"><a href="classPolySolver.html">PolySolver</a></div><div class="ttdoc">Trajectory generator back-end class. </div><div class="ttdef"><b>Definition:</b> poly_solver.h:21</div></div>
<div class="ttc" id="classTrajSolver_html_ac19cb6eed090945ebd4d847631434819"><div class="ttname"><a href="classTrajSolver.html#ac19cb6eed090945ebd4d847631434819">TrajSolver::setV</a></div><div class="ttdeci">void setV(decimal_t v)</div><div class="ttdoc">Set velocity used for internal time allocation. </div><div class="ttdef"><b>Definition:</b> traj_solver.h:47</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
